package cn.tedu.oopenextends;

public class TestExtends3 {
    public static void main(String[] args) {
        Son3 s=new Son3();

    }
}
//father
class Father3{
    //创造父类的无参构造
    public Father3(){
        System.out.println("父亲无参构造");
    }
    public Father3(String s){
        System.out.println("父亲参构造"+s);
    }

    public static void method() {
        System.out.println("hehe");
    }
}
class Son3 extends Father3{
    /*在子类的构造方法中，默认存在super（）；表示调用父类的无参构造
    也就是说，在创建子类对象时，会调用子类的构造方法，继承后，
    会先去调用父类的构造方法，再去调用子类的构造方法
     */
    /*默认存在无参构造*/
    //创造子类的无参构造
    /*构造方法可以被继承吗？答案是不可以！
    *因为由于构造方法的语法要求，构造方法必须与类同名
    *不能在子类有一个父类名字的构造方法，天然不符合要求
     */
    public Son3(){
        super("444");
        System.out.println("儿子无参构造");
        /*当父类中没有无参构造时，调用的是父类的含参构造
        子类不关心具体调用的的是哪类构造函数
        只时必须调用一个父类的构造函数而已
         */
    }
}
